// index.js
// 引入app对象
var app = getApp()
// 引入fmtTime.js
var fmt = require('../../utils/fmtTime.js')

Page({
  data:{
    item: 2, // item是模板页的index
    state: 'paused', // 音频状态running播放 paused暂停
    songId: 0, // 当前播放的音乐（播放列表的索引值）
    duration: 0, // 初始化音频总时长
    playList: app.globalData.playList 
  },

  audioBam:null,
  onReady(){
    // 背景音频管理器初始化
    this.audioBam = wx.getBackgroundAudioManager()

    // 监听音频播放进度
    this.audioBam.onTimeUpdate((res)=>{
      // console.log('onTimeUpdate res', res) // 秒
      var currentTime = this.audioBam.currentTime // 进度时间，秒
      var durationTime = this.audioBam.duration // 音频总时长,s
      var percent = currentTime / durationTime * 100
      // console.log(`currentTime- ${currentTime},durationTime- ${durationTime}, percent- ${percent}`)

      this.setData({
        currentTime: fmt.fmtTime(currentTime), 
        durationTime: fmt.fmtTime(durationTime),
        percent,
        duration: durationTime
      })
    })


  },
  // 将音频资源传给audioBam对象,index是playList的列表索引值
  setMusic(index){
    var music = app.globalData.playList[index]
    this.audioBam.src = music.src
    this.audioBam.title = music.title
    // 将Music写入appData当中
    this.setData({
      music
    })
  },
  // 播放音频
  play(){
    this.setMusic(this.data.songId) // 根据songId的值变化而变化
    this.setData({
      state: 'running' // 播放了，那么state的值就是running
    })
  },
  // 暂停播放
  pause(){
    this.audioBam.pause() // 调用audioBam对象里的pause函数暂停播放
    this.setData({
      state: 'paused'
    })
  },
  // 下一曲
  next(){
    /**
     * 1、如何标记当前播放的音乐: songId标记，是播放列表的索引值，默认情况是0
     * 2、如何切换下一曲：songId+=1
     * 3、假如播放到播放列表最后一首，点击下一曲播放哪首：songId = 0
     * 综上所述，next主要就是控制songId的变化，最后再播放
     */
    var songId = this.data.songId // 当前播放
    // songId += 1
    // songId = 0
    //  3          3
    if (songId < app.globalData.playList.length - 1) {
      songId += 1 // 下一曲
    }else{
      songId = 0 // 回到播放列表的第一首
    }
    // 更新songId的值
    this.setData({
      songId
    })
    this.play() // 调用播放
  },
  // 拖动进度条去调整播放进度
  sliderChange(e){
    /**
     * 1、如何获取当前滑块的值？
     * 2、拿到值后，该值能否作为音频进度时间使用？
     * 3、如何调整该时间？
     */
    console.log('滑块的值：', e.detail.value)
    // 新的进度时间 = 滑块值 / 100   ×  音频总时长  
    var newCurrentTime = e.detail.value / 100 * this.data.duration // undefined
    console.log('新的进度时间', newCurrentTime)
    // NaN: Not a Number 
    this.audioBam.seek(newCurrentTime) // 从newCurrentTime开始播放
  },


  playlist_item(){
    // 点击播放列表按钮，将页面内容切换到播放列表
    this.setData({
      item: 2
    })
  },
  play_item(){
    this.setData({
      item: 1
    })
  },

  changeTab(e){
    this.setData({
      item: e.target.dataset.item
    })
  },
  swiperTab(e){
    // console.log('swiperTab', e)
    this.setData({
      item: e.detail.current
    })
  }

})
